package frsf.cidisi.exercise.arqueologo.search;

import frsf.cidisi.faia.solver.search.IStepCostFunction;
import frsf.cidisi.faia.solver.search.NTree;

/**
 * This class can be used in any search strategy like
 * Uniform Cost.
 */
public class CostFunction implements IStepCostFunction {

    /**
     * This method calculates the cost of the given NTree node.
     */
    public double calculateCost(NTree node) {
    	ArqueologoAgentState agState = (ArqueologoAgentState) node.getAgentState(); 
    	
    	/**
    	 * Retorno de la funcion de costo para el MBCU.
    	 */
      return -1*agState.valorTotal();
        /**
    	 * Retorno de la funcion de costo para el MBA*.
    	 */
    	//En el caso de que la distancia recorrida sea 0, significa que estamos en el punto de partida.
//    	if(agState.getDisRecorrida() != 0){
//    		return -1 * (agState.valorTotal() / agState.getDisRecorrida());
//    	}else{
//    		return -1 * agState.valorTotal();
//    	}
    	/**
    	 * Retorno de la funcion de costo para el MBH.
    	 */
//    	return 0.0;
    }
}
